查看原文
其他

【翻译+解读】从官方Titanic案例打开kaggle机器学习之路(中)

王大伟 Python爱好者社区 2019-04-07

点击上图开始学习韦玮老师最新网络爬虫课程

作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei


  本文代码和数据获取方式:关注Python爱好者社区,回复泰坦尼克


前文传送门:【翻译+解读】从官方Titanic案例打开kaggle机器学习之路(上)


有争议的数据


我们对数据做出了一些假设和结论。到目前为止,我们不必改变单个特征为了达到目的。我们现在来执行我们的决定和假设来纠正,创建和完成目标。


通过删除特征来修正模型


这是一个很好的开端。通过删除特征,我们就处理更少的数据。加快了运行速度,简化了分析。


基于我们的假设和之前得出的结论,我们希望删除客舱(数据修正假设2)和船票信息(数据修正假设1)特征。


请注意,我们一起对训练和测试数据集都执行操作,以保持一致。



从现有的创建新的特征提取


在删除姓名和乘客ID特征前,我们想要分析是否可以设计一个姓名特征,通过提取称谓并测试称谓和生存之间的相关性。


在下面的代码中,我们使用正则表达式提取称谓特征。正则表达式模式(\ w + \。)匹配名称特征中以点号字符结尾的第一个单词。 expand = False标志返回一个DataFrame。




我们我们可以用更常见的名称替换许多称谓,或将它们归类为少数类:



我们可以将类别类型的称谓转换为序号表示:







观察


当我们绘制称谓,年龄和生存特征时,我们注意到以下情况:

大多数称谓的年龄组别是准确的

称谓年龄组别的生存情况略有差异

某些头衔大多存活下来(例如Mme,Lady,Sir)或者没有存活(例如:Don,Rev,Jonkheer)


决策


我们决定保留新的称谓特征来训练模型


转换类别类型的特征


现在,我们可以将包含字符串的特征转换为数值类型特征,这是大多数模型算法所要求的。这样做也将帮助我们实现功能完成目标。


我们开始将性别(Sex)特征转换为名为性别(Gender)的新特征,其中女性取值为1,男性取值为0。



完成一个数值型连续特征


现在我们应该开始估计并填充有着缺少值或空值的特征。我们先来对Age特征进行处理。


我们可以考虑三种方法来填充连续数值特征。


1. 一个简单的方法是在均值和标准差之间生成随机数。

2. 猜测缺失值的更准确的方法是使用其他相关特征。 在我们的案例中,我们注意到年龄,性别和Pclass之间的相关性。 使用Pclass和Gender特征组合中Age的中位数值猜测年龄值。 因此,Pclass = 1和Gender = 0组合的中位数年龄,Pclass = 1和Gender = 1,等等......

3. 结合方法1和2.因此,不要根据中位数猜测年龄值,而根据Pclass和Gender组合,使用平均值和标准差之间的随机数。


方法1和3将在我们的模型中引入随机噪声。 多次执行的结果可能会有所不同。 我们更喜欢方法2。


让我们开始准备一个空数组,以包含基于Pclass x Gender组合的猜测年龄值。



现在我们遍历Sex(0或1)和Pclass(1,2,3)来计算6种组合的Age的猜测值。



让我们创建年龄段并确定与Survived的相关性:



让我们用基于这些段来用数字替换掉Age:



我们现在能将年龄段的特征删除了:



结合现有特征创建新特征


我们可以为Parch(父母与小孩个数)和SibSp(堂兄弟/妹个数)结合的家庭规模创建一个新功能。 这将使我们能够从我们的数据集中删除Parch和SibSp特征。



我们可以创建另一个称为IsAlone(单人)的特征:



我们放弃Parch,SibSp和FamilySize特征,使用IsAlone特征:



我们还可以创建一个结合Pclass和Age的人工特征:


完成分类特征


登船港口特征需要基于登乘港口的S,Q,C值。 我们的训练数据集有两个缺失值。 我们使用众数填补这些缺失值。




将类别特征转换为数值特征


我们现在可以通过创建一个新的数值型特征Port来转换EmbarkedFill特征。



快速完成并转换数字特征


我们现在补齐船票(Fare)特征,使用出现最多的情况填充。

我们还想将票价四舍五入到小数点后两位,因为它代表货币。



我们能创建船票分段的特征:




根据FareBand(船票分段)将票价特征转换为序数值:



测试集上:




未完待续~


韦玮老师网络爬虫最新课程火爆促销中!

20章节只需299!


扫码下图点击阅读原文即可试听学习


点击
阅读原文
,即可免费试听学习!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存